/*
 * Na šachovnici P (obdelnikovou sit m * k) je pevně rozmístěno f bodů.
 * Úkolem je rozmístit dalších b-f bodů, tak aby byl maximální součet matice
 * Euklidovských vzdáleností všech dvojic bodů = sum_i_j d(i,j). Body se nesmějí
 * překrývat.
 *
 * Geometrická interpretace: rozmístit na ploše b bodů tak, aby byly co nejdál
 * od sebe.
 */
#ifndef MAIN_H_
#define MAIN_H_

#include "point.h"
#include "stack.h"
#include <omp.h>
/*
 * Pocet procesoru k dispozici.
 */
int proc_num;


Stack * loadbalancer;
Stack * initstack;
Stack * lostack;

omp_lock_t lock;
omp_lock_t initlock;
omp_lock_t bestlock;
omp_lock_t noworklock;
omp_lock_t loadcontrol;

/*
 * Rozměry plánu (m horizontálně - počet sloupců, k vertikálně - počet
 * řádků)
 */
unsigned short m, k;

/*
 * Počet pevně určených bodů
 */
unsigned short f;

/*
 * Počet bodů, které celkově budou rozmístěny
 */
unsigned short b;

/*
 * Pozice pevně určených bodů
 */
Point *fixedPoints;

int main(int argc, char **argv);

#endif
